The present invention relates to synchronization of objects between object stores on two different computing devices. More particularly, the present invention relates to synchronization of objects which represent file data between an object store on a desktop-type computer and an object store on a mobile device.
Mobile devices are small electronic computing devices often referred to as personal digital assistants. Many such mobile devices are pagers, hand held devices, or palm size devices, which comfortably fit within the hand. One commercially available device is sold under the mark "HANDHELD PC" (or "H/PC"), another is sold under the mark "PALM-SIZE PC" (or "P/PC"), both having software provided by Microsoft Corporation of Redmond, Wash.
Generally, the mobile device includes a processor, random access memory (RAM), and an input device such as a keyboard, touchpad or input buttons and a display. The keyboard can be integrated with the display, such as when the keyboard is incorporated as a touch sensitive display. A communication interface is optionally provided and is commonly used to communicate with the desktop computer. A replaceable or rechargeable battery powers the mobile device. optionally, the mobile device can receive power from an external power source that overrides or recharges the built-in battery.
In some prior applications, the mobile device is used in conjunction with the desktop computer. For example, the user of the mobile device may also have access to, and use, a desktop computer at work or at home or both. The user may typically run the same types of applications on both the desktop computer and on the mobile device. Thus, it is quite advantageous for such mobile devices to be designed to be coupled to the desktop computer to exchange information with, and share information with, the desktop computer.
While a wide variety of computing tasks and applications can be performed by such mobile devices, personal information managers (PIMs) are particularly well suited to mobile devices. PIMs typically comprise applications which enable the user of the mobile device to better manage scheduling and communications, and other such tasks. Some commonly available PIMs include scheduling and calendar programs, task lists, address books, and electronic mail (e-mail) programs. Some commonly commercially available PIMs are sold under the trademarks "MICROSOFT SCHEDULE+" and "MICROSOFT OUTLOOK" and are commercially available from Microsoft Corporation of Redmond, Wash. In addition to PIMs, however, such mobile devices may also run different types of applications, such as word processors, spread sheets, etc. Some such applications include those sold under the trademarks "POCKET WORD" and "POCKET EXCEL", both of which are commercially available from Microsoft Corporation of Redmond, Wash.
The user may also typically make changes to the PIMs and other applications both on the mobile device and at the desktop. Therefore, it is advantageous for data stores associated with the PIMs and applications on both the mobile device and the desktop to contain the most up-to-date information, regardless of whether recent changes to the PIMs and other applications have been made on the mobile device or on the desktop computer. The process of coupling the mobile device with the desktop computer, and integrating the information stored by the PIMs on the mobile device and the desktop computer such that the two contain the same updated information is referred to as synchronization.
Synchronization of information in object stores in general, and synchronization of electronic mail objects are discussed at length in the above-identified patent applications. However, a number of problems present themselves when attempting to synchronize data files across diverse functional systems (e.g., across two different and normally incompatible computer architectures). For example, data files lack a unique, persistent object identifier associated with a file. The file name is typically used as the object identifier, and as such is very susceptible to identity loss simply by renaming the file. This affects many core data base operations, such as object copy, object move, and object compare operations, rendering all such operations suspect.
Another problem is presented during conversion of the file content based on the target device. In other words, in many cases, the programs on the different devices utilizing the object may not have a one-to-one correspondence. Thus, the form of the object must be converted before it is transferred from one object store (such as the desktop object store) to another object store (such as the device object store). Inherent in this conversion is the potential loss of fidelity from the original data file. In addition, conversion can also contribute to the problem of having no unique, persistent object identifier. For example, it may be desirable to provide the user with multiple conversion choices. However, the multiple conversion choices can result in different file extensions, thus resulting in another file name change.
In addition, some conversion engines provide a user interface, during conversion, which requests or requires user input. In the event that the mobile device is being remotely synchronized to the desktop computer, this presents a problem in that the user may not be present at the desktop to interact with the user interface generated by the conversion engine.
In addition, many conventional data files can be locked. In other words, files can be rendered read only files which cannot be written for any number of reasons. For example, where a word processing document is being used by one user at a different station, and a second user accesses the word processing document, the word processing document may be locked to the second user, rendering it read only, until the first user relinquishes control of the file.
Therefore, attempted synchronization of this document would be impossible, since the document cannot be written to and thus cannot be updated during the synchronization process. This problem can be exacerbated in a synchronization architecture which provides a continuous synchronization mode while the desktop and mobile device are connected to one another.
Similarly, if a continuous synchronization mode is provided between the desktop and mobile device, the bandwidth of the devices can be taken up by continuous synchronization of non-relevant files, such as temporary files and shortcuts. This deteriorates the performance of the system.